Computers have become an integral tool used in a wide variety of different applications, such as in finance and commercial transactions, computer-aided design and manufacturing, health-care, telecommunication, education, etc. Computers are finding new applications as a result of advances in hardware technology and rapid development in software technology. Furthermore, a computer system's functionality is dramatically enhanced by coupling stand-alone computers together to form a computer network. In a computer network, users may readily exchange data, files, share information stored on a common database, pool resources, and communicate via e-mail and via video teleconferencing.
When sharing such information via, for example, a network, it is often desired to prioritize the transmission of the data. As an example, it is common to have numerous types of data transmitted to, for example, a client PC (personal computer). Some of the data may not be able to tolerate long periods of latency (e.g. real-time video data). That is, if the real-time video data is delayed in being transmitted to the client PC, the client PC will experience a degradation in the video images produced thereon. On the other hand, if the transmission of, for example, a simple data file is delayed, the client PC will not be severely compromised. Hence, when attempting to transmit both real-time video data and a simple data file to a client PC, it is prudent to allocate a higher priority to the real-time video data. Such prioritization is typically accomplished by performing a stateful inspection of the data being transmitted. The stateful inspection uses state information to provide classification information of the data. This classification information is then used to prioritize the data using a method commonly referred as Quality of Service (QoS) classification. The stateful inspection is commonly implemented within and performed by, for example, an intermediate device through which the data is transmitted. Unfortunately, conventional stateful inspection methods have significant drawbacks and disadvantages associated therewith.
As an example of one drawback, conventional stateful inspection methods and intermediate devices are often developed to accommodate specific types of data. However, such conventional approach does not lend itself to an expedient and efficient analysis of newly introduced types of data.
As yet another disadvantage, conventional stateful inspection methods and intermediate devices are often developed to accommodate specific protocols. For example, a conventional stateful inspection method or intermediate device may have been developed to recognize and analyze data pertaining to a real-time audio data transmission protocol. By recognizing the real-time audio data transmission protocol, a conventional stateful inspection method could accommodate applying QoS classification to the real-time audio data. In such an approach, the real-time audio data could be assigned the highest priority due to its latency intolerance. However, if a new data transmission protocol is developed (e.g. real-time video), existing conventional stateful inspection methods may not even recognize, or be able to analyze, the protocol and/or the data transmitted according to the new protocol. Furthermore, data transmitted according the new protocol may have even less latency tolerance than all other data. That is, the real-time video data of the “new protocol” may require an even higher priority than the real-time audio data of the “old protocol”. Thus, with conventional stateful inspection methods or intermediate devices it may not even be possible to use QoS classification methods to readily assign a higher priority (or even any priority value) to the data of the new protocol.
Thus, a need exists for a method and intermediate device for providing a stateful inspection of data wherein the method and intermediate device are not limited by the inflexible nature of conventional stateful inspection approaches. Still another need exists for a method and intermediate device which meet the above-listed need and which enable Quality of Service (QoS) classification even for future protocols. Yet another need exists for a method and intermediate device which meet the above-listed needs and which enable Quality of Service (QoS) classification based upon the high level application of the data even for future protocols.